解决Python 删除只读文件/文件夹报错:[WinError 5] 拒绝访问。 |
您所在的位置:网站首页 › winerror5 拒绝访问 › 解决Python 删除只读文件/文件夹报错:[WinError 5] 拒绝访问。 |
文章目录
1. 按
2. 实际运用
1. 按 有时候我们使用shutil.rmtree()、os.rmdir()、os.remove()删除文件时会报[WinError 5] 拒绝访问的错误: 如使用os.remove()删除当前文件夹下的'PackageCache\\[email protected]\\Tests\\Editor.meta'时提示 [WinError 5] 拒绝访问。: ‘PackageCache\[email protected]\Tests\Editor.meta’ 这个时候我们可以让Python运行cmd命令强制删除此文件: 12import os os.system('del "PackageCache\[email protected]\Tests\Editor.meta" /F')关于使用CMD命令删除文件或文件夹,可以参考:Windows CMD删除文件或文件夹命令帮助 2. 实际运用 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182import os import shutil dirs = ['.idea', '.vs', 'Logs', 'obj'] files = ['.sln', '.csproj'] dirsCnt = 0 filesCnt = 0 def delWithCmd(path): try: if os.path.isfile(path): cmd = 'del "'+ path + '" /F' print(cmd) os.system(cmd) except Exception as e: print(e) def deleteDir(dirPath): global dirsCnt global filesCnt for root, dirs, files in os.walk(dirPath, topdown=False): for name in files: try: filesCnt += 1 filePath = os.path.join(root, name) print('file deleted', filesCnt, filePath) os.remove(filePath) except Exception as e: print(e) delWithCmd(filePath) for name in dirs: try: os.rmdir(os.path.join(root, name)) dirsCnt += 1 except Exception as e: print(e) os.rmdir(dirPath) def delDir(dirPath): global dirsCnt shutil.rmtree(dirPath) dirsCnt += 1 print('dir deleted', dirsCnt, dirPath) def delFile(filePath): global filesCnt os.remove(filePath) filesCnt += 1 print('file deleted', filesCnt, filePath) def delete(path): try: if os.path.isfile(path): delFile(path) elif os.path.isdir(path): deleteDir(path) except Exception as e: print(e) for proj in os.listdir(): if not os.path.isdir(proj): continue os.chdir(proj) print(os.getcwd()) for p in os.listdir(): if os.path.isdir(p) and p in dirs: delete(p) elif os.path.isfile(p) and os.path.splitext(p)[1] in files: delete(p) libPath = 'Library' if os.path.exists(libPath) and os.path.isdir(libPath): os.chdir(libPath) for p in os.listdir(): if p == 'LastSceneManagerSetup.txt': continue delete(p) os.chdir('..') os.chdir('..') |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |